home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / completion.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  1KB  |  43 lines

  1. #ifndef __LINUX_COMPLETION_H
  2. #define __LINUX_COMPLETION_H
  3.  
  4. /*
  5.  * (C) Copyright 2001 Linus Torvalds
  6.  *
  7.  * Atomic wait-for-completion handler data structures.
  8.  * See kernel/sched.c for details.
  9.  */
  10.  
  11. #include <linux/wait.h>
  12.  
  13. struct completion {
  14.     unsigned int done;
  15.     wait_queue_head_t wait;
  16. };
  17.  
  18. #define COMPLETION_INITIALIZER(work) \
  19.     { 0, __WAIT_QUEUE_HEAD_INITIALIZER((work).wait) }
  20.  
  21. #define DECLARE_COMPLETION(work) \
  22.     struct completion work = COMPLETION_INITIALIZER(work)
  23.  
  24. static inline void init_completion(struct completion *x)
  25. {
  26.     x->done = 0;
  27.     init_waitqueue_head(&x->wait);
  28. }
  29.  
  30. extern void FASTCALL(wait_for_completion(struct completion *));
  31. extern int FASTCALL(wait_for_completion_interruptible(struct completion *x));
  32. extern unsigned long FASTCALL(wait_for_completion_timeout(struct completion *x,
  33.                            unsigned long timeout));
  34. extern unsigned long FASTCALL(wait_for_completion_interruptible_timeout(
  35.             struct completion *x, unsigned long timeout));
  36.  
  37. extern void FASTCALL(complete(struct completion *));
  38. extern void FASTCALL(complete_all(struct completion *));
  39.  
  40. #define INIT_COMPLETION(x)    ((x).done = 0)
  41.  
  42. #endif
  43.